<?php

namespace App\Console\Commands;

use App\Models\Category\CategoryGroup;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Cache;

class CacheCategoryGroupCommand extends Command
{
    /**
     * The name and signature of the console command.
     *控制台命令的名称和签名。
     * @var string
     */
    protected $signature = 'cache:category_group';

    /**
     * The console command description.
     *控制台命令说明。
     * @var string
     */
    protected $description = '缓存分类分组数据';

    /**
     * Create a new command instance.
     *创建一个新的命令实例。
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    public function handle()
    {
        //如果你想获取单列数据的集合，则可以使用 pluck 方法，可以在返回的集合中指定字段的自定义键名，name=>id。返回的是集合，所以需要toArray。
        $groups = CategoryGroup::query()->pluck('id', 'name')->toArray();
        //清空指定键的缓存
        Cache::forget('category_group');
        //生成指定键的缓存
        Cache::put('category_group', $groups);
    }
}
